package appIdeasScrumer.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import appIdeasScrumer.excepcion.DAOExcepcion;
import appIdeasScrumer.modelo.Discusion;
import appIdeasScrumer.util.ConexionBD;

public class DiscusionDAO extends BaseDAO {
	
	
public Discusion insertarDiscusion(Discusion vo) throws DAOExcepcion {
	String query = "";
	//String query = "insert into tc_discusion(COD_IDEA, TXT_DISCUSION, COD_USUARIO, AUD_FECREGISTRO, AUD_FECMODIFICACION, AUD_USUREGISTRO, AUD_USUMODIFICACION, AUD_ESTADO) values (?,?)";
	
	query += "insert into tc_discusion(";
	query += "COD_IDEA, TXT_DISCUSION, COD_USUARIO, AUD_FECREGISTRO, AUD_FECMODIFICACION, AUD_USUREGISTRO, AUD_USUMODIFICACION, AUD_ESTADO ";	
	query += ") values(";
	query += "?, ?, ?, now(), now(), ?, ?, ?";
	query += ")";
	
	//System.out.println(query);
	
	Connection con = null;
	PreparedStatement stmt = null;
	ResultSet rs = null;
	try {
		con = ConexionBD.obtenerConexion();
		stmt = con.prepareStatement(query);
		stmt.setInt(1, vo.getCodIdea());
		stmt.setString(2, vo.getDescripcion());
		stmt.setInt(3, vo.getCodUsuario());
		stmt.setInt(4, vo.getAud_usuregistro());
		stmt.setInt(5, vo.getAud_usumodificacion());
		stmt.setInt(6, vo.getAud_estadologico());
		int i = stmt.executeUpdate();
		if (i != 1) {
			throw new SQLException("No se pudo insertar");
		}
		// Obtener el ultimo id
		int id = 0;
		query = "select last_insert_id()";
		stmt = con.prepareStatement(query);
		rs = stmt.executeQuery();
		if (rs.next()) {
			id = rs.getInt(1);
		}
		vo.setCodDiscusion(id);

	} catch (SQLException e) {
		System.err.println(e.getMessage());
		throw new DAOExcepcion(e.getMessage());
	} finally {
		this.cerrarResultSet(rs);
		this.cerrarStatement(stmt);
		this.cerrarConexion(con);
	}
	return vo;
		
}

public Collection<Discusion> listarDiscusion(int codIdea)
			throws DAOExcepcion {
		
		//SELECT * FROM dew_scrumers.tc_discusion where COD_IDEA = 2;
		//String query = "select TXT_DISCUSION, AUD_FECREGISTRO from tc_discusion where codIdea=?";
		
	Collection<Discusion> c = new ArrayList<Discusion>();
	Connection con = null;
	PreparedStatement stmt = null;
	ResultSet rs = null;
	try {
		con = ConexionBD.obtenerConexion();
		//String query = "select id_categoria,nombre,descripcion from categoria order by nombre";
		String query = "select TXT_DISCUSION, AUD_FECREGISTRO, (select concat(des_nombres,' ', des_paterno,' ' , des_materno) from tc_usuario where cod_usuario=d.cod_usuario) as nombreUsuario from tc_discusion d where COD_IDEA=? and aud_estado=1 order by AUD_FECREGISTRO";
		stmt = con.prepareStatement(query);
		System.out.println(query);
		stmt.setInt(1, codIdea);
		rs = stmt.executeQuery();
		
		
		while (rs.next()) {
			Discusion vo = new Discusion();
			//vo.setIdCategoria(rs.getInt("id_categoria"));
			vo.setDescripcion(rs.getString("TXT_DISCUSION"));
			vo.setAud_fecregistro(rs.getDate("AUD_FECREGISTRO"));
			vo.setNombreUsuario(rs.getString("nombreUsuario"));
			c.add(vo);
			
			System.out.println(vo.getDescripcion());
			System.out.println(vo.getNombreUsuario());
			System.out.println("-----------------");
			
		}

	} catch (SQLException e) {
		System.err.println(e.getMessage());
		throw new DAOExcepcion(e.getMessage());
	} finally {
		this.cerrarResultSet(rs);
		this.cerrarStatement(stmt);
		this.cerrarConexion(con);
	}
	return c;
}

	
}


